﻿namespace Rally_MvvmC.Library
{
    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    public interface IDataStore : IDisposable
    {
        /*
        void Put<ViewModelClass, EntityClass>(DbContext dataContext, ViewModelClass item, int userId, bool updateChildren, bool useTransaction)
            where EntityClass : class
            where ViewModelClass : ViewModelBase<IDataStore, EntityClass>;
         */
        void Put<DataStoreType, ViewModelClass, EntityClass>(DbContext dataContext, ViewModelClass item, int userId, bool updateChildren, bool useTransaction)
            where DataStoreType : IDataStore
            where EntityClass : class
            where ViewModelClass : ViewModelBase<DataStoreType, EntityClass>;
    }
}
